/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package csp;

import java.util.List;

/**
 *
 * @author Leandro
 */
public class CSP implements Cloneable{

    protected List<Variable> variables;
    protected int variablePorAsignar;
    protected List<Valor> dominio;
    protected ExpertoRestricciones verificadorRestricciones;
    
    @Override
    public Object clone(){
        Object obj=null;
        try{
            obj=super.clone();
        }catch(CloneNotSupportedException ex){
            System.out.println(" no se puede duplicar");
        }
        return obj;
    }

    
    public ExpertoRestricciones getVerificadorRestricciones() {
        return verificadorRestricciones;
    }

    public void setVerificadorRestricciones(ExpertoRestricciones verificadorRestricciones) {
        this.verificadorRestricciones = verificadorRestricciones;
    }
     

    public List<Valor> getDominio() {
        return dominio;
    }

    public void setDominio(List<Valor> dominio) {
        this.dominio = dominio;
    }

  

    public int getVariablePorAsignar() {
        return variablePorAsignar;
    }

    public void setVariablePorAsignar(int variablePorAsignar) {
        this.variablePorAsignar = variablePorAsignar;
    }

    public List<Variable> getVariables() {
        return variables;
    }

    public void setVariables(List<Variable> variables) {
        this.variables = variables;
    }

    public int getVariablesNoAsignadas() {
        int cantidadNoAsignadas = 0;
        for(Variable var : getVariables()){
        if (var.getAsignado() == null){
        cantidadNoAsignadas ++;
            }
        }
        return cantidadNoAsignadas;
    }



}
